home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / MRAC / Variations / pick-rnd < prev    next >
Lisp/Scheme  |  1998-08-11  |  1KB  |  28 lines

  1. pick-rnd seed type count pattern
  2.  
  3. type :list :content 
  4.  
  5. Use this function as a building block in complex expressions which need a tool for picking elements using a random generator from a list or lists.
  6.  
  7. (setq pat1 '(a a b c c d e f g h))
  8. (setq pat2 '((a b a b c d) (a b e b c d) (e f g h)))
  9.  
  10. (pick-rnd .56 :content 2 pat1)
  11. => (a c)
  12.  
  13. (pick-rnd .56 :list 2 pat2)
  14. => ((a b a b c d) (a b a b c d))
  15.  
  16. (pick-rnd .56 :content 2 pat2)
  17. => ((a b) (d b) (h f))
  18.  
  19. (pick-rnd .56 :content '(2 3 3) pat2)
  20. => ((a b) (d b b) (h f h))
  21.  
  22. In these examples the type parameter offers the choice of :content and :list options. The :content option enables different elements to picked from multiple lists. The :list option enables a single element or set of elements to be picked from multiple lists.
  23.  
  24. (pick-rnd .56 :list 2 pat2)
  25. => ((a b a b c d) (a b a b c d))
  26.  
  27. The random seed enables the composer to recapture a particular choice. Setting the random seed to nil disables this facility. The count parameter enables the number of elements picked to be defined.
  28.